home *** CD-ROM | disk | FTP | other *** search
-
- #ifndef EXEC_TYPES_H
- #include <exec/types.h>
- #endif
-
- #ifndef __STDIO_H
- #include <stdio.h>
- #endif
-
-
-
- #define GAL16V8 1 /*GAL-Typ*/
- #define GAL20V8 2
- #define GAL22V10 3
- #define GAL20RA10 4
- #define UNKNOWN 5
- #define NOT_SPECIFIED 6
-
-
- #define HW_GALER_1_0 1 /* Hardware-Versionen */
- #define HW_GALER_1_2 2
- #define HW_GALER_1_3 3
-
-
- #define EDITOR_STR_SIZE 25 /* string size for editor */
-
- #define IC1 3 /*IC-Nummern*/
- #define IC2 -1 /*IC2 nur für Elektor- und*/
- #define IC3 0 /*Maxon-GAL-Brenner*/
- #define IC4 1
- #define IC5 2
- #define IC6a 0
- #define IC6c 4
- #define IC7 1
- #define IC10 10
-
-
- #define ON 1 /* LED-Status */
- #define OFF 0
-
- #define YES 1
- #define NO 0
-
- #define PROG 1 /* GAL-Modus */
- #define VERIFY 0
-
- #define LOW 0
- #define HIGH 1
- #define INPUT_PIN 0
- #define OUTPUT_PIN 1
-
- #define CONT_REQ 0 /* Requester-Typen */
- #define INFO_REQ 1
- #define ERR_REQ 2
- #define GALTYPE_REQ 3
- #define ERASE_REQ 5
-
- #define LOAD 0 /* Filerequester-Typen */
- #define SAVE 1
-
- /*Dauer des STR-Impulses in*/
- #define _80MS 80000L /*Mikrosekunden für pro-*/
- #define _10MS 10000L /*grammieren, löschen*/
- #define _40MS 40000L
- #define _50MS 50000L
- #define _100MS 100000L
- #define VERIFY_TIME 5L /*lesen*/
-
-
- /*Spannung*/
- #define V12_00 4 /*12.00 Volt*/
- #define V14_00 3 /*14.00 Volt*/
- #define V14_50 2 /*14.50 Volt*/
- #define V15_75 1 /*15.75 Volt*/
- #define V16_50 0 /*16.50 Volt*/
-
-
-
- #define COPYGAL 1 /*für ProgJedecToGAL-Routine*/
- #define PROGGAL 2
-
- /*Voreinstellungen*/
- struct Configuration { BYTE GALType; /*GALType*/
- BYTE GALTypeReq; /*TRUE=Requester für GAL-Typ*/
- BYTE GenJedec; /*Jedec-File erstellen?*/
- BYTE GenFuse; /*Fuse-File erstellen?*/
- BYTE GenChip; /*Chip-File erstellen?*/
- BYTE GenPin; /*Pin-File erstellen?*/
- BYTE AutoSave; /*automatisch sichern?*/
- BYTE AutoGAL; /*autom. GAL eistellen?*/
- BYTE ProgEmptyTest; /*Leertest vor Prog.GAL*/
- BYTE ProgVerify; /*Verify nach Prog.GAL*/
- BYTE CopyEmptyTest; /*Leertest vor Copy-GAL*/
- BYTE CopyVerify; /*Verify nach Copy-GAL*/
- BYTE EraseEmptyTest; /*Leertest nach GAL-Löschen*/
- BYTE JedecSecBit; /*Security-Bit des Jedec*/
- BYTE JedecFuseChk; /*Fuse-Checksumme des Jedec*/
- BYTE JedecFileChk; /*File-Checksumme des Jedec*/
- BYTE HardwareVersion; /*Hardware-Version*/
- BYTE EdWBToFront; /*WB to front*/
- char EditorStr[EDITOR_STR_SIZE];
- };
-
-
-
-
- struct JedecStruct { BYTE GALLogic[5808]; /*max. Größe der Fuse-Mat.*/
- BYTE GALXOR [10]; /*XOR-Bits*/
- BYTE GALSig [64]; /*Signatur*/
- BYTE GALAC1 [8]; /*AC1-Bits*/
- BYTE GALPT [64]; /*Produkttermfreigabe*/
- BYTE GALSYN; /*SYN-Bit*/
- BYTE GALAC0; /*AC0-Bit*/
- BYTE GALS1 [10]; /*S1 bits für 22V10 */
- };
-
-
- /* GAL16V8 */
- #define LOGIC16 0 /* Positionen der Bits in der*/
- #define XOR16 2048 /* Jedec-Datei*/
- #define SIG16 2056
- #define AC116 2120
- #define PT16 2128
- #define SYN16 2192
- #define AC016 2193
- #define NUMOFFUSES16 2194
- /* GAL20V8 */
- #define LOGIC20 0 /* Positionen der Bits in der*/
- #define XOR20 2560 /* Jedec-Datei*/
- #define SIG20 2568
- #define AC120 2632
- #define PT20 2640
- #define SYN20 2704
- #define AC020 2705
- #define NUMOFFUSES20 2706
-
- /* GAL22V10 */
- #define NUMOFFUSES22V10 5892 /* Positionen der Bits in der */
- #define XOR22V10 5808 /* Jedec-Datei */
- #define SYN22V10 5809
- #define SIG22V10 5828
-
- /* GAL20RA10 */
- #define NUMOFFUSES20RA10 3274 /* Positionen der Bits in der */
- #define XOR20RA10 3200 /* Jedec-Datei */
- #define SIG20RA10 3210
-
-
- #define LOGIC16_SIZE 2048 /*Anzahl der Bits für XOR usw.*/
- #define LOGIC20_SIZE 2560
- #define LOGIC22V10_SIZE 5808
- #define LOGIC20RA10_SIZE 3200
- #define ROW_SIZE_16V8 64
- #define ROW_SIZE_20V8 64
- #define ROW_SIZE_22V10 132
- #define ROW_SIZE_20RA10 80
- #define XOR_SIZE 8
- #define SIG_SIZE 64
- #define AC1_SIZE 8
- #define PT_SIZE 64
- #define SYN_SIZE 1
- #define AC0_SIZE 1
- #define ACW_SIZE 82 /*Architektur-Kontroll-Wort*/
-
- #define MAX_FUSE_ADR16 31 /*Adressen der GALs (für Fan-Post)*/
- #define SIG_ADR16 32
- #define MAX_FUSE_ADR20 39
- #define SIG_ADR20 40
- #define MAX_FUSE_ADR22V10 43
- #define SIG_ADR22V10 44
- #define MAX_FUSE_ADR20RA10 39
- #define SIG_ADR20RA10 40
- #define ACW_ADR 60
- #define SECURITY_ADR 61
- #define ERASE_ADR 63
-
-
-
-
-
- /*GAL-Assembler*/
-
-
- /*Konstanten für den Assembler*/
- #define ASSEMBLER 0 /*ganzes File assemblieren->Jedec*/
- #define OPTIMIZER 1 /*nur bis zu den Gleichungen assem-*/
- /*blieren (Optimizer)*/
-
- struct Pin { BYTE p_Neg; /*Pin negiert?*/
- BYTE p_Pin; }; /*Pinnummer*/
-
-
- struct GAL_OLMC { BYTE Active; /*Ausgang negiert?*/
- BYTE PinType; /*Eingang, komb. Ausgang...*/
- BYTE TriCon; /*Tri.-Kontrolle angegeben?*/
- BYTE Clock; /*Clock-Gleichung angegeben?*/
- BYTE ARST; /*ARST-Gleichung angegeben?*/
- BYTE APRST; /*APRST-Gleichung angegeben?*/
- BYTE FeedBack; }; /*Ausgang mit Rückkopplung?*/
-
-
- #define ACTIVE_LOW 0 /*Pin High-aktiv*/
- #define ACTIVE_HIGH 1 /*Pin Low-aktiv*/
- /*PinType: */
- #define NOTUSED 0 /*Pin (noch) nicht verwendet*/
- #define NOTCON 0 /*Pin nicht verwendet*/
- #define INPUT 2 /*Eingang*/
- #define COMOUT 3 /*kombinatorischer Ausgang*/
- #define TRIOUT 4 /*Tristate-Ausgang*/
- #define REGOUT 5 /*Register-Ausgang*/
- #define COM_TRI_OUT 6 /*entweder Tri. oder komb. Ausgang*/
- /*TriCon:*/
- #define NO_TRICON 0 /*kein Tri.-Kontrolle angegeben*/
- #define TRICON 1 /*Tri.-Kontrolle angegeben*/
- #define TRI_VCC 2 /*ständige Tristate-Freigabe*/
- #define TRI_GND 3 /*ständig hochohmig*/
- #define TRI_PRO 4 /*Tristate-Kontrolle über Produktterm*/
-
-
- #define NC_PIN 30
-
- #define MODE1 1 /*Betriebsmodi (SYN,AC0)*/
- #define MODE2 2
- #define MODE3 3
-
-
- #define MAX_SUFFIX_SIZE 6 /* max. string length of a legal */
- /* suffix */
-
-
-
- /*Konstanten für den Optimizer*/
-
- #define NEGATION 0x80 /*Bit 7 = 1 wenn '/' vor Pinnamen*/
- #define EQUASKIP 0xFE /*wird nicht beachtet*/
- #define EQUAEND 0xFF /*Ende einer Gleichung*/
- #define EQUASEND 0x00 /*Ende aller Gleichungen, bis zum*/
- /*DESCRIPTION*/
-
- #define ENTRY_SIZE 256 /*Anzahl der Einträge pro Puffer*/
-
- #define SIZE_OF_EQUASTRING 80
- /* Aus der Struktur Buffer wird */
- /* eine verkettete Liste aufgebaut, */
- /* in deren "Entries" entsprechende */
- /* Daten abgelegt werden */
- struct Buffer { struct Buffer *Next;
- struct Buffer *Prev;
- UBYTE Entries[ENTRY_SIZE]; /*hier werden z.B. die codier-*/
- }; /*ten Gleichungen abgelegt*/
-
-
- /* diese Struktur wird für Parameter */
- /* und für Ergebnisse von Funktionen */
- /* benötigt; sie enthält alle Infor- */
- /* mationen über den aktuellen Puffer */
- /* (siehe Equations-Struktur */
- struct ActBuffer { struct Buffer *ThisBuff; /*Zeiger auf aktuellen Puffer*/
- UBYTE *Entry; /*Zeiger in das Entries-Feld*/
- UBYTE *BuffEnd; /*Zeiger auf Pufferende*/
- };
-
-
-
-
-
-
-
-
-
- /* Port.asm */
- void InitGALer(void);
- void EnableOutput(void);
- void DisableOutput(void);
- void InitParPort(void);
- void RestoreParPort(void);
- void WriteByte(int, int);
- int ReadByte(int);
- void VeditOn(void);
- void VeditOff(void);
- void LED(int);
- void EnableVcc(void);
- void DisableVcc(void);
- void EnableVEdit(void);
- void DisableVEdit(void);
- void SetRow(int);
- void SDIn(int);
- int SDOut(void);
- void Clock(void);
- void STRImpuls(long);
- void EditMode(int);
- void ExitEditMode(void);
- void SetPV(int);
- void SetVolt(int);
- void SetGAL(int);
- void SetPESSAVE(int);
- void SetERASE(int);
- void SetCLR(int);
- void SetBE(int);
- void SetARCH(int);
- void SetANDBE(int);
-
-
- /* GALer.c */
- void main(void);
- void ExecuteMenu(int menu, int item, int subitem);
- void PAL_NTSC(void);
- int GetParPort(void);
- void FreeParPort(void);
- int GetTimer(void);
- void FreeTimer(void);
- void OpenStuff(void);
- void CloseStuff(void);
- void WaitForTimer(ULONG micro);
- int InitMyGadgets(void);
-
-
- /* GAL.c */
- void ProgramGAL(void);
- void CopyGAL(void);
- int CheckGAL(void);
- void TestSecurity(void);
- void Compare(void);
- void PrintACW(void);
- void PrintSignature(void);
- int ProgJedecToGAL(int mode);
- void ReadGALToJedec(void);
- void SetSecurity(int flag);
- void Loeschen(void);
- void EraseIt(void);
- void Leertest(void);
-
-
- /*GALasm .c */
- int AssembleInputFile(int OpMode);
- void SetAND(int row, int pinnum, int negation);
- void IsPinName(UBYTE *pinnames, int numofpins);
- int GetNextChar(void);
- int GetNextLine(void);
- void AsmError(int errornum, int pinnum);
- void WriteChipFile(void);
- void WritePinFile(void);
- void WriteFuseFile(void);
- void WriteSpaces(FILE *fp, int numof);
- void WriteRow(FILE *fp, int row);
- int IsOR(char);
- int IsAND(char);
- int IsNEG(char);
- void Is_AR_SP(UBYTE *ptr);
-
-
- /* Optimizer.c */
- int Optimizer(void);
- struct ActBuffer GetProdTermStart(struct ActBuffer pos);
- void KillProdTerm(struct ActBuffer term);
- int OptimizeEqua(struct ActBuffer buff);
- int Resolvente(struct ActBuffer optstart, struct ActBuffer optend, struct ActBuffer alteSchicht);
- int NumOfVar(struct ActBuffer term);
- int AddResolvente(struct ActBuffer pos1, struct ActBuffer pos2, struct ActBuffer equastart, struct ActBuffer *equaend);
- int SearchVar(struct ActBuffer *, struct ActBuffer, UBYTE);
- int WriteNewSource(struct ActBuffer buff, UBYTE *equastart, UBYTE *equaend);
- int CopyEqua(struct ActBuffer from_buff, struct ActBuffer to_buff);
- int PrintEqua(struct ActBuffer buff, struct ActBuffer *filebuff);
- int GetNext(struct ActBuffer *buff);
- int GetNextEqua(struct ActBuffer *buff);
- void PrintOptText(UBYTE *txt);
- void ScrollRequester(void);
- int TranslateEqua(struct ActBuffer *buff);
-
-
- /* Pruefer.c */
- void Pruefer(struct Gadget *gad, USHORT gadID);
- void SetLevel(USHORT gadID, int level);
- void CheckOutput(void);
- void TogglePruefer(void);
- void DrawGAL(int type);
- void DrawLeftPin(long x, long y);
- void DrawRightPin(long x, long y);
- void PrintPinNames(void);
- void ClearPinNames(void);
-
-
- /* GAL2.c */
- UBYTE GetByte(UBYTE *ptr);
- int ReadGALParameter(int checkflag);
- void GALInfo(void);
- int GALAType(void);
-
-
- /* Sub.c */
- void Schreibverhalten(void);
- void JedecRequester(void);
- void About(void);
- int mystrcmp(char *cptr1, char *cptr2);
- int MyFileReq(char *headtxt, char *showtxt, int showreq, int mode);
- int MyRequest(int mode, UBYTE *text);
- int AsmRequester(void);
- long FileSize(UBYTE *filename);
- int ReadFile(UBYTE *filename, LONG filesize, UBYTE *filebuff);
- void ErrorReq(int errornum);
- void PrintText(UBYTE *text, int newline);
- void PrintErrorLine(int line);
- void LoadConfig(void);
- void SaveConfig(void);
- void SetGALType(int galtype);
- int AddByte(struct ActBuffer *buff, UBYTE code);
- int AddString(struct ActBuffer *buff, UBYTE *strnptr);
- void IncPointer(struct ActBuffer *buff);
- void DecPointer(struct ActBuffer *buff);
- void FreeBuffer(struct Buffer *buff);
- void SelectEditor(void);
- void CallEditor(void);
-
-
- /* Reasm.c */
- int CheckPinNames(void);
- int PinNameRequester(int galtype);
- int RowActive(int row, int galtype);
- int OLMCOutput(int olmc, int mode);
- int MakeEquation(struct ActBuffer *buff, int olmc, int colsize, int mode, int rowoffset, int numofrows);
- int Reasm(struct ActBuffer buff);
- void Reassembler(void);
- void ReasmError(int errornum, int pinnum);
- UBYTE *PinNamePtr(int pinnum, struct Gadget *gadget);
-
-
-
- /* Jedec.c */
- void PutJedec(void);
- int FileChecksum(struct ActBuffer buff);
- int FuseChecksum(int galtype);
- int MakeJedecBuff(struct ActBuffer buff, int galtype);
- void WriteJedecFile(int galtype);
- int SearchNextChar(void);
- int SearchNextAsterix(void);
- int GetJedec(UBYTE *jedecfile);
- void JedecError(int errornum, int flag);
-
-
- /* Localize.c */
- void LocalizeText(void);
-
-
- /* Help.c */
- void HelpOnMainMenu(UWORD menuNumber);
- void HelpOnCheckerMenu(UWORD menuNumber);
- void Help(void);
-
-